diff --git a/scripts/dtc/pylibfdt/libfdt.i_shipped b/scripts/dtc/pylibfdt/libfdt.i_shipped
index 5b38e63..e180ee9 100644
--- a/scripts/dtc/pylibfdt/libfdt.i_shipped
+++ b/scripts/dtc/pylibfdt/libfdt.i_shipped
@@ -398,6 +398,27 @@
             return pdata
         return Property(pdata[0], pdata[1])
 
+    def get_property(self, nodeoffset, prop_name, quiet=()):
+        """Obtains a property by name
+
+        Args:
+            nodeoffset: Offset to the node to check
+            prop_name: Name of property to get
+            quiet: Errors to ignore (empty to raise on all errors)
+
+        Returns:
+            Property object, or None if not found
+
+        Raises:
+            FdtException on error (e.g. invalid prop_offset or device
+            tree format)
+        """
+        pdata = check_err_null(
+                fdt_get_property(self._fdt, nodeoffset, prop_name), quiet)
+        if isinstance(pdata, (int)):
+            return pdata
+        return Property(pdata[0], pdata[1])
+
     @staticmethod
     def create_empty_tree(size, quiet=()):
         """Create an empty device tree ready for use
@@ -632,6 +653,17 @@
         """
         return check_err(fdt_node_offset_by_phandle(self._fdt, phandle), quiet)
 
+    def del_node(self, nodeoffset):
+        """Delete a node
+
+        Args:
+            nodeoffset: Node offset containing property to delete
+
+        Raises:
+            FdtError if the node does not exist, or another error occurs
+        """
+        return check_err(fdt_del_node(self._fdt, nodeoffset))
+
 
 class Property(bytearray):
     """Holds a device tree property name and value.
